/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Controllayer;
import Modellayer.*;
import Dblayer.*;
import java.util.ArrayList;
/**
 *
 * @author bruhn
 */
public class BestillingCtr {
    private Bestilling tempBestilling;

    public BestillingCtr()
	{}
        public Bestilling findBestilling(int bestillingsNr, boolean associations)
        {
            IFDBBestilling dbBestilling = new DBBestilling();
            tempBestilling = dbBestilling.findBestillingsNr(bestillingsNr, associations);
            return tempBestilling;
        }

	public ArrayList<VareLinje> findVareLinjeMedBestillingsNr(int bestillingsNr)
	{
            ArrayList<VareLinje> tempVareLinje = new ArrayList();
            IFDBVareLinje dbVareLinje = new DBVareLinje();
            tempVareLinje = dbVareLinje.findBestillingsnr(bestillingsNr, true);
            return tempVareLinje;
	}

        public void opretVareLinje(VareLinje tempVareLinje)
        {
            IFDBVareLinje dbVareLinje = new DBVareLinje();
            dbVareLinje.opretVareLinje(tempVareLinje);
        }

        public void sletVareLinje(int vareID, int bestID)
        {
            IFDBVareLinje dbVareLinje = new DBVareLinje();
            dbVareLinje.sletBestilling(vareID, bestID);
        }

        public void opretBestilling(Bestilling besObj)
        {
            IFDBBestilling dbBestilling = new DBBestilling();
            dbBestilling.opretBestilling(besObj);
        }
//	public void insertBestilling(int bestillingsNr, String kommentar, double pris, boolean status)
//        {
//            tempBestilling = new Bestilling (bestillingsNr, kommentar, pris, status);
//            IFDBBestilling dbBestilling = new DBBestilling();
//            dbBestilling.insertBestilling(tempBestilling);
//        }

	public void sletBestilling(int bestillingsNr)
	{
            IFDBBestilling dbBestilling = new DBBestilling();
            dbBestilling.sletBestilling(bestillingsNr);
	}

	public void redigerBestilling(int bestillingsNr, String kommentar, double pris, boolean status, int medNr)
	{
            Medarbejder tempMedarbejder = new Medarbejder();
            tempMedarbejder.setMedNr(medNr);
            tempBestilling = new Bestilling (bestillingsNr, kommentar, pris, status, tempMedarbejder);
            IFDBBestilling dbBestilling = new DBBestilling();
            dbBestilling.redigerBestilling(tempBestilling);
	}

	//her mangler både en metode som kan printe en kviterring ud
	//og en metode der gør et salg færdigt (ved ikke om det skal laves i det grafiske interface)
	public String printkvittering(int bestillingsNr, Medarbejder medarbejder)
	{
		String lineSeparator =	(String) java.security.AccessController.doPrivileged(
	    new sun.security.action.GetPropertyAction("line.separator"));
		String kvittering = "";
		tempBestilling = findBestilling(bestillingsNr, true);
		ArrayList<VareLinje> tempVareLinje = new ArrayList();
		tempVareLinje = findVareLinjeMedBestillingsNr(bestillingsNr);
		//her skal der laves en liste over alle ting som skal være på kvitteringen

		int i = 0;
		while (i <tempVareLinje.size())
		{
			kvittering = kvittering + tempVareLinje.get(i).getVareID().getVareNavn() + " ( " + tempVareLinje.get(i).getAntal() + ")" + ". . . . ." + (tempVareLinje.get(i).getVareID().getPris() * tempVareLinje.get(i).getAntal()) + "kr." + lineSeparator;
		i++;
		}
		
		i = 0;
		double totalPris = 0;
		while (i <tempVareLinje.size())
		{
			totalPris = totalPris + (tempVareLinje.get(i).getVareID().getPris() * tempVareLinje.get(i).getAntal());
			i++;
		}
		
		kvittering = kvittering + lineSeparator + totalPris + "kr.";

		kvittering = kvittering + lineSeparator + lineSeparator + "du er blevet ekspederet af: " + medarbejder.getFornavn() + " " + medarbejder.getEfternavn();
		
		return kvittering;
	}
}
